Computer curve construction system II

ABSTRACT

An invented computer curve construction system is described that enables construction of conics more intuitively, predictably, and accurately. Also new constructions of particular cubic Bezier curves and their conic analogs are described.

RELATED APPLICATIONS

[0001] Provisional Application, No. 60/424,097, filed Nov. 5, 2002, byBrigit Ananya for “Computer Curve Construction System II”.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] This invention relates generally to computer curve constructionsystems and methods. In particular, it describes additional embodimentsof a “Computer Curve Construction System” described in U.S. Pat. No.6,441,823, Ananya, where the chosen curves are conical sections.

[0004] 2. Description of Related Art

[0005] A conic is a mathematically defined curve. For example, as shownin FIG. 1, typically a conic it is drawn (constructed) with a computercurve drawing program by setting a start point a₀, an end point a₁, anda control point a₂, and then choosing any arbitrary point a₃ on theconic. The tangent directions of the conic are determined by the controlpoint a₂, and the shape of the conic is determined by the chosenarbitrary point a₃. However, simply choosing an arbitrary point a₃ thatwill be somewhere on the conic does not allow a program operator tointuitively anticipate the shape of the conic that will be constructedby the computer.

[0006] In contrast, U.S. Pat. No. 6,441,823, Ananya, B., describes acomputer curve construction system for creating peak-point curves byselecting a star point, a start tangent direction, an end point spacedfrom the start point, an end tangent direction, and a peak pointsomewhere between the start and end points where the program calculatesand draws a curve connecting the start and end points passing throughthe peak point where the tangent of the curve at the peak point isparallel to the chord between the start and end points. [See claims 13,14, 15, & 16, Col. 24 ll 7-54.] By defining a peak point, the curveconstruction system described in Ananya enables the operator to betteranticipate, intuitively, the shape of the curve the program willconstruct responsive to operator input.

[0007] Conical section or conics have the advantage of being generallymore geometric than Bezier curves. This geometric feature allows foreasier operator conceptualization of a contemplated curve beforeinputting defining parameters. Secondly, behavior of conics arecomputationally predictable with established relationships that exist orcan be easily defined. Yet for formulations and accurate numericapproximations by a computer (CPU) constructing the conic, the definingsignature constraints on the operator selected parameters must satisfyparticular conditions before the computer program can allow constructionof a desired curve.

SUMMARY OF THE INVENTION

[0008] An invented computer curve construction system is described thatenables construction of conics more intuitively, predictably, andaccurately. Also new constructions of particular cubic Bezier curves andtheir conic analogs are described.

[0009] As in Ananya (supra) the newly invented computer curveconstructions allow curves that consist of several curve componentsconnected either with G⁰ continuity, i.e. continuity of points(geometric continuity of order 0), G¹ continuity, i.e. continuity ofpoints and tangent directions, just the angles of the tangents,(geometric continuity of order 1), or G² continuity, i.e. continuity ofpoints, tangent directions, and curvatures (geometric continuity oforder 2).

[0010] In a first embodiment, construction of a conic peak-point curveis described where the operator inputs are:

[0011] (i) the start point, a₀;

[0012] (ii) the end point, a₁;

[0013] (iii) the start tangent direction, e₀;

[0014] (iv) the end tangent directions, e₁; and

[0015] (v) the distance of the peak point, p from the chord between thestart and end points.

[0016] The peak point is the point on the curve that is farthest awayfrom the chord sometimes referred to as the shoulder point of the curve.For conics the peak point always lies on the centerline segmentconnecting the center of the chord with the intersection point t of therays extending in the start and end tangent directions e₀, e₁respectively from the start and end points a₀, a₁ [hereinafter referredto as start and end tangents].

[0017] In a second embodiment, construction of a conic point-point curveis described where the operator inputs are:

[0018] (i) the start point, a₀;

[0019] (ii) the start tangent direction, e₀; and

[0020] (iii) the peak point, p.

[0021] From these inputs, the computer system displays a guide arealocating possible end point loci. The guide area is defined by 2 raysintersecting at a point s that lies on a one of the 2 rays that extendsfrom the start point a₀ in the direction of the peak point p at twice(2×) the distance of the peak point p from the start point a₀. The otherray extends from s in the direction opposite to the start tangentdirection e₀.

[0022] (iv) The operator then selects any point in the guide area as theend point a₁ of the curve.

[0023] The computer, using any suitable mathematical formulae thenconstructs a curve passing through the start point, a₀, peak point, p,and the end point a₁. The end point tangent direction e₁ is derived fromthe known point of intersection of the start and end tangents coincidingwith the intersection of start tangent and the line connecting thecenter of the chord between the start and end points a₀, a₁, and thepeak point, p.

[0024] In a third embodiment, construction of a conic point-tangentcurve is described wherein the operator inputs are:

[0025] (i) the start point, a₀;

[0026] (ii) the start tangent direction, e₀;

[0027] (iii) the end point, a₁;

[0028] (iv) the end point tangent directions, e₁; and

[0029] (v) a fixed weight, w, or fixed cos-weight, v, for the curve.

[0030] The computer, using any suitable mathematical formulae, thenconstructs a curve passing through the start point, a₀, and the endpoint a₁. The input weight w is a parameter defined as the proportionbetween the distance of a peak point from the center point q of thechord between the start and end points a₀, a₁ and the distance of thepeak point from the intersection point t of the start and end tangents.Accordingly, the input weight w chosen for the curve locates the peakpoint on the centerline segment connecting q with t. In thisconstruction system, a fixed cos-weight v is an arbitrarily definedpositive parameter that utilizes a multiplication factor such as thetrigonometric cosine relationship for computing a weight that limits thepermitted range of the peak points of the possible curves. For example,when the angle α between the start and end tangent directions, e₀ , e₁,is set by operator input near 180°, the height of a fixed weight curve(the locus of the peak point p) approaches infinity as α approaches180°, whereas the height of a fixed cos-weight curve is limited as aapproaches 180°, e.g., if the fixed cos-weight v utilizes a factorcos(α/2) for computing the weight w, which approaches zero as α→180°,the loci of the peak points for the possible curves approaches a limit.

[0031] In a fourth embodiment, construction of a conic point curve isdescribed wherein the operator inputs are:

[0032] (i) the start point, a₀;

[0033] (ii) the start tangent direction, e₀; and

[0034] (iii) the end point, a₁, and

[0035] (iv) a fixed weight, w, or fixed cos-weight, v, for the curve

[0036] The computer, using any suitable mathematical formulae, thenconstructs a curve passing through the start point, a₀, and the endpoint a₁, where the end tangent direction e₁ is automatically set, e.g.in a symmetric way such that the angle between a ray extending from thestart point a₀ in the direction of the end point a₁, and the end tangentdirection, e₁, equals the angle of between the start tangent direction,e₀ and that ray. As in the case of the conic point-tangent curve, thechosen weight w or cos-weight v locates the peak point, p on thecenterline segment between the center point of the chord and theintersection point t of the start and end tangents.

[0037] There are essentially infinite possible conic point-tangent curveconstructions, and, as well, infinite possible conic point curveconstructions because of the possible weights, w, or cos-weights, v,that can be selected by an operator. The invented concept of using afixed weight w or a fixed cos-weight v is also applicable to cubicBezier curves and many other curve classes. By choosing to place thepeak point p on the centerline segment connecting the center of thechord between the start and end points with the intersection point ofthe start and end tangents, the selected weight w or cos-weight vdetermines the position of the peak point.

[0038] In a fifth embodiment, construction of a conic curvature curve isdescribed where the operator inputs are:

[0039] (i) the start point, a₀;

[0040] (ii) the start tangent direction, e₀; whereupon the computerdisplays a guideline perpendicular to the start tangent direction, e₀for the center m₀ of the start curvature circle, r₀;

[0041] (iii) the center m₀ of the start curvature circle r₀ on thedisplayed guideline; and

[0042] (iv) the end point a₁; and

[0043] (v) the end tangent direction, e₁.

[0044] For conic curvature curves, the start curvature determines theend curvature. The computer, using any suitable mathematical formulae,then establishes a center m₁ for the end curvature circle r₁ and draws aconic curve through the start and end points a₀, a₁, with respectivestart and end tangent directions of e₀, e₁ with the center m₀ of thestart curvature circle r₀.

[0045] In a sixth embodiment, a construction system for a new class ofpoint curvature curves including those for cubic Bezier curves andconics is described where the operator inputs are:

[0046] (i) the start point, a₀;

[0047] (ii) the start tangent direction, e₀; whereupon the computerdisplays a guideline perpendicular to the start tangent direction, e₀for the center m₀ of the start curvature circle r₀;

[0048] (iii) the center m₀ of the start curvature circle r₀ on thedisplayed guideline; and

[0049] (vi) the end point a₁.

[0050] The computer, using any suitable mathematical formulae, thenconstructs a curve passing through the start and end points a₀, a₁, withstart tangent direction e₀ and center m₀ of the start curvature circler₀. In this embodiment, like the previously described conic point curveconstruction embodiment, the end tangent direction e₁ is automaticallyset, e.g. in a symmetric way such that the angle between a ray extendingfrom the start point a₀ in the direction of the end point a₁, and theend tangent direction, e₁, equals the angle of between the start tangentdirection, e₀ and that ray. For conics, the center m₁ of the endcurvature circle r₁ is automatically determined as shown for coniccurvature curves. Since the end tangent direction is chosen in asymmetric way, the end curvature of the resulting conic equals the startcurvature. For cubic Bezier curves, the center m₁ of the end curvaturecircle r₁ must be chosen by the program, e.g., in such a way that theend curvature equals the start curvature.

[0051] As described in Ananya (supra), it is possible to modify a curveby changing the position of a feature of any curve component whiledrawing it or after the drawing is completed. It is also possible tomodify the type of continuity by which two curve components areconnected, or to make two curves out of one curve, or one curve out oftwo curves, to delete and redraw any curve component, or to add orsubtract curve components.

[0052] Last but not least it is possible to change the curve type. Inparticular, it is possible to transform a conic into one or severalcubic Bezier curves (which are very close) and to transform a cubicBezier curve into one or several conics (which are fairly close, but arechosen in such a way that allows for shape improvement).

[0053] This invented Computer Curve Construction System II enables theconstruction of conics more intuitively, predictably, and accurately,and it is also faster, more efficient and ergonomic for the operator.

BRIEF DESCRIPTION OF THE DRAWINGS

[0054]FIG. 1 is all the steps in constructing a conic the old way

[0055]FIG. 2 is two curves connected without curvature continuity

[0056]FIG. 3 is two curves connected with curvature continuity

[0057]FIG. 4 is a first step in constructing a conic peak-point curve.

[0058]FIG. 5 is a second step in constructing a conic peak-point curve.

[0059]FIG. 6 is a third step in constructing a conic peak-point curve.

[0060]FIG. 7 is a first step in constructing a conic point-point curve.

[0061]FIG. 8 is a second step in constructing a conic point-point curve.

[0062]FIG. 9 is a third step in constructing a conic point-point curve.

[0063]FIG. 10 is a first step in constructing a conic point-tangentcurve.

[0064]FIG. 11 is a second step in constructing a conic point-tangentcurve.

[0065]FIG. 12 is a first step in constructing a conic point curve.

[0066]FIG. 13 is a second step in constructing a conic point curve.

[0067]FIG. 14 is a first step in constructing a conic curvature curve.

[0068]FIG. 15 is a second step in constructing a conic curvature curve.

[0069]FIG. 16 is a third step in constructing a conic curvature curve.

[0070]FIG. 17 is a first step in constructing a conic point-curvaturecurve.

[0071]FIG. 18 is a second step in constructing a conic point-curvaturecurve.

[0072]FIG. 19 is a third step in constructing a conic point-curvaturecurve.

DETAILED DESCRIPTION OF THE INVENTION

[0073] Introduction

[0074] The present computer curve construction system and method ispreferably implemented as part of a computer drawing program for drawingcurves, which is a practical application in the industrial art ofcomputer drawing. In one embodiment, the system may be implemented inany suitable computer language for any operating system and any hardwareplatform. The system may be distributed through any medium, such as adisc, non-volatile memory, or being available for downloading on anetwork. In other embodiments the system may be implemented in anyfirmware or any hardware.

[0075] In FIGS. 1-19, all points are represented by small circles, andall tangent directions are represented by lines with arrows. A tangentdirection only indicates the direction or angle of a tangent vector; itdoes not indicate the length of the tangent vector.

[0076] The Computer Curve Construction System described in Ananya(supra) is incorporated by reference into this application to providedefinition, context and meaning to the newly invented curve constructionembodiments described below.

[0077] FIGS. 4-6 Conic Peak-Point Curves

[0078] As in Ananya (supra), in a first step shown in FIG. 4, a startpoint a₀ is set, and a start tangent direction e₀ is set. In a secondstep shown in FIG. 5, an end point a₁ is set and an end tangentdirection e₁ is set. Then a guide for the peak point is shown (the pointon the curve at the greatest distance from the chord). The guide for thepeak point is the centerline segment which connects the center of thechord with the intersection point of the start and end tangents. For aconic the peak always lies on the centerline segment. In a third stepshown in FIG. 6, the peak point p is set anywhere on this guide. Sinceit is difficult to place p exactly on the guide, the point that is setis projected onto the guide to the point on the guide at the samedistance from the chord. A conic curve is automatically drawn by thecomputer through points a₀ and a₁, with start and end tangent directionse₀ an e₁, and with the peak point p, according to any suitable set ofmathematical formulas.

[0079] This conic curve is already drawn when the mouse button (inputdevice) is pressed for the peak point. When the peak point is dragged bythe input mechanism, (mouse) to a new location, and the conic curve ischanged, the final shape of which is drawn when the input mechanismreleases the peak point.

[0080] Additional curve components of any type may be constructedconnected to the original curve with G², G¹, or G⁰ continuity.

[0081] The conic peak-point curves are more intuitive, predictable, andaccurate to construct than conics with typical computer drawingprograms, because the peak point directly determines its path.

[0082] An exemplar set of formulas for determining a conic peak-pointcurve is as follows:

[0083] Let q=0.5(a₀+a₁) be the center of the chord. The equation for theconic is${{x(t)} = \frac{{\left( {1 - t} \right)^{2}b_{0}} + {2{t\left( {1 - t} \right)}{wb}_{1}} + {t^{2}b_{2}}}{\left( {1 - t} \right)^{2} + {2{t\left( {1 - t} \right)}w} + t^{2}}},$

[0084] where b₀, b₁, b₂ are the control points and w is the weight. Thecontrol point b₀ is the start point a₀, the control point b₁ is theintersection point of the start and end tangents, the control point b₂is the end point a₁, and the weight w is the proportion between thedistance of the peak point from q and the distance of the peak pointfrom b₁.

[0085] The following assumptions are made:

[0086] Assume that sign(e₀×(a₁−a₀))=sign(e₁×x(a₀−a₁))=sign (e₀×e₁)(where “x” denotes the vector product between two 2-dimensional vectors)and that the peak point p lies on the guide described above.

[0087] The following formulas are provided;

b ₀ =a ₀$b_{1} = {a_{0} + {\frac{\left( {a_{1} - a_{0}} \right){xe}_{1}}{e_{0}{xe}_{1}}e_{0}}}$

 b ₂ =a ₁ $w = {\frac{{p_{1} - q_{1}}}{{p_{1} - b_{1}}}.}$

[0088] The parameter for the peak point of a conic is always 0.5,whereas for a cubic Bezier curve this parameter can have a differentvalue.

[0089] The concept of peak-point curve shows very clearly why the conicshave a better shape than the cubic Bezier curves. The reason is that theconics are more centered, since the peak point always lies on thecenterline, whereas for cubic Bezier curves the peak point can lieelsewhere than on the centerline.

[0090] FIGS. 7-9—Conic Point-Point Curves

[0091] As in Ananya (supra), in a first step shown in FIG. 7, a startpoint a₀, and a start tangent direction e₀ are set. In a second stepshown in FIG. 8, a peak point p is set. Then a guide for the end pointis shown. The guide uses the special point that lies on the ray startingat the start point in the direction of the peak point at twice thedistance of the peak point from the start point. It is the area of theopen convex polygon defined by the following two rays starting at thisspecial point: the ray in the direction of the peak point from the startpoint and the ray in the opposite direction of the start tangentdirection. In a third step shown in FIG. 9, the end point a₁ is setanywhere on this guide. A conic c is automatically drawn through pointsa₀ and a₁, with start tangent direction e₀ and peak point p, accordingto any suitable set of mathematical formulas. As shown in FIG. 9, forthe example of conics (unlike the example of cubic Bezier curves), theend tangent direction e₁ is automatically determined, since theintersection point of the start and end tangents is determined. Itequals the intersection point of the start tangent and the lineconnecting the center of the chord with the peak point.

[0092] This conic c is already drawn when the mouse button (inputdevice) is pressed for the end point a₁, and when the mouse is dragged,the end point a₁ is dragged to a new position, and the conic c ischanged, the final shape of which is drawn when the mouse is released.

[0093] Additional curve components of any type may be constructed toconnect with G2, G1, or G0 continuity.

[0094] The conic point-point curves are easy to construct, because theend tangent direction of each curve component is automaticallydetermined.

[0095] An exemplar set of formulas for determining a conic point-pointcurve is as follows:

[0096] The following assumption is made:

[0097] Assume that the end point a1 lies inside the guide describedabove.

[0098] The following formulas are provided:

[0099] Using the automatically determined end tangent direction e₁, theformulas for a conic point-point curve are the same as the formulas fora conic peak-point curve.

[0100] FIGS. 10-11-Conic Point-Tangent Curves

[0101] As in Ananya (supra), in a first step shown in FIG. 10, a startpoint a₀ and a start tangent direction e₀ are set. In a second stepshown in FIG. 11, an end point a₁ and an end tangent direction e₁ areset. A conic c is automatically drawn through start and end points a₀and a₁, with start and end tangent directions e₀ and e₁, according toany suitable set of mathematical formulas.

[0102] The conic has a chosen weight w such as w=cos(α/2), where a isthe angle between e₀ and e₁. With this weight, if the angle between e₀and the ray extending from the start point to the end point equals theangle between that ray and e₁, the conic is a circular arc. However, theuser is allowed to choose any fixed weight or any fixed cos-weight. Thecos-weight is a new concept that has not been used anywhere. If theweight is (v)cos(α/2), we say that the cos-weight is v. The advantage ofa fixed cos-weight is, that if the angle α goes toward 180 degrees, theheight of the curve is still restrained, whereas for a fixed weight theheight stretches toward infinity. If the weight is 1, the conic is aparabola, which means that the conic point-tangent curve is the same asthe Bezier point-tangent curve described in Ananya. (supra) However,there are infinitely more possibilities for conic point-tangent curves(and also for conic point curves as described below), when choosing anyweight or cos-weight.

[0103] These infinitely more possibilities for point-tangent and pointcurves can also be allowed for the example of cubic Bezier curves bychoosing the peak point to lie on the center line segment with a chosenweight or cos-weight and computing the Bezier peak-point curve.

[0104] As shown in FIG. 11, the peak point p is automatically determinedby the weight w. The proportion λ of the distance of the peak point fromthe center of the chord to the total length of the center line segmentwhich is: $\lambda = \frac{w}{w + 1}$

[0105] This shows where on the center line the peak point lies.

[0106] This conic c is already drawn when the mouse is dragged to theposition of the end tangent direction e₁, and when the mouse is draggedfurther, the end tangent direction e₁ is dragged to a new position, andthe conic c is changed, the final shape of which is drawn when the mouseis released.

[0107] Additional curve components of any type may be constructed toconnect with G², G¹, or G⁰ continuity.

[0108] The conic point-tangent curves are easy to construct, because thepeak point is automatically determined.

[0109] An exemplar set of formulas for determining a conic peak-pointcurve is as follows:

[0110] The following assumptions are made:

[0111] Assume that sign(e₀×(a₁−a₀))=sign(e₁×(a₀−a₁))=sign(e₀×e₁).

[0112] The following formulas are provided:

[0113] The weight w is the chosen weight or (v)cos(α/2), where v is thechosen cos-weight, The proportion λ of the distance of the peak pointfrom the center of the chord to the total length of the centerlinesegment is given by: $\lambda = \frac{w}{w + 1}$

[0114] Everything else is determined in the same way as for the conicpeak-point curves.

[0115] FIGS. 12-13—Conic Point Curves

[0116] As in Ananya (supra), in a first step shown in FIG. 12, a startpoint a₀ and a start tangent direction e₀ are set. In a second stepshown in FIG. 13, an end point a₁ is set. A conic c is automaticallydrawn through start and end points a₀ and a₁ with start tangentdirection e₀, according to any suitable set of mathematical formulas. Asshown in FIG. 13, an end tangent direction e₁ for end point a₁ isautomatically set, for example, in a symmetric way such that the anglebetween the chord and the end tangent direction equals the angle betweenthe start tangent direction and the chord.

[0117] The conic has a chosen weight w (which can be determined by achosen cos-weight v as described for conic point-tangent curves). Asshown in FIG. 13, the peak point p is automatically determined by theweight w; this computation is done in the same way as for conicpoint-tangent curves.

[0118] In this particular embodiment the whole curve component c issymmetric with respect to the axis that is perpendicular to the chordand goes through the center of the chord.

[0119] This conic c is already drawn when the mouse button (inputdevice) is pressed for the end point a₁, and when the mouse is dragged,the end point a₁ is dragged to a new position, and the conic c ischanged, the final shape of which is drawn when the mouse is released.

[0120] Additional curve components of any type may be constructed toconnect with G², G¹, or G⁰ continuity.

[0121] The conic point curves are easy to construct, because the endtangent direction and the peak point are automatically determined.

[0122] An exemplar set of formulas for determining a conic point curveis as follows:

[0123] The following assumption is made:

[0124] Assume that the angle between e₀ and the ray extending from a₀ inthe direction of a₁ is smaller than 90°:

[0125] The following formulas are provided:

[0126] After choosing the end tangent direction e₁ as described above,the formulas for the conic point curve are the same as the formulas fora the conic point-tangent curve.

[0127] FIGS. 14-16—Conic Curvature Curves

[0128] As in Ananya (supra), in a first step shown in FIG. 14, a startpoint a₀ and a start tangent direction e₀ are set, and the guide for thecenter of the start curvature circle (the osculating circle of the startcurvature) is shown. The guide is the line through a₀ perpendicular toe₀. In a second step shown in FIG. 15, a center m₀ of the startcurvature circle r₀ is set. Since it is difficult to place m₀ exactly onthe guide, the point that is set is projected perpendicularly onto theguide. In a third step shown in FIG. 16, an end point a₁ and an endtangent direction e₁ are set. For a conic, once the start curvature ischosen, the end curvature is automatically determined. As shown in FIG.16, a center m₁ of the end curvature circle r₁ is drawn automatically. Aconic c is automatically drawn through start and end points a₀ and a₁with start and end tangent directions e₀ and e₁ and center m₀ of thestart curvature circle r₀ according to any suitable set of mathematicalformulas.

[0129] This conic c is drawn when the mouse button {input device] isdragged for the end tangent direction, and when the mouse is draggedfurther, the end tangent direction is dragged to a new location, and theconic c is changed, the final shape of which is drawn when the mouse isreleased.

[0130] Additional curve components of any type may be constructed toconnect with G², G¹, or G⁰ continuity.

[0131] The conic curvature curves are easy to construct, because the endcurvature is automatically determined. So for all additional coniccurvature curves that are connected with G² continuity, no curvature hasto be drawn, whereas for Bezier curvature curves that are connected withG² continuity always the end curvature has to be drawn.

[0132] An exemplar set of formulas for determining a conic curvaturecurve is as follows:

[0133] The equation for the conic is${{x(t)} = \frac{{\left( {1 - t} \right)^{2}b_{0}} + {2{t\left( {1 - t} \right)}{wb}_{1}} + {t^{2}b_{2}}}{\left( {1 - t} \right)^{2} + {2{t\left( {1 - t} \right)}w} + t^{2}}},$

[0134] where b₀, b₁, b₂ are the control points and w is the weight. Theformulas for the start curvature k₀ and end curvature k₁ are:$\begin{matrix}{k_{0} = \frac{{area}\left( {b_{0},b_{1},b_{2}} \right)}{w^{2}{{b_{1} - b_{0}}}^{3}}} \\{k_{1} = \frac{{area}\left( {b_{0},b_{1},b_{2}} \right)}{w^{2}{{b_{2} - b_{1}}}^{3}}}\end{matrix}$

[0135] where area((b₀, b₁, b₂) is the area of the triangle formed by b₀,b₁, b₂.

[0136] The following assumption is made:

[0137] Assume that sign(e₀×(a₁−a₀))=sign(e₁×(a₀−a₁))=sign(e₀×e₁) andthat the end point lies on the same side of e₀ as the center of thestart curvature circle.

[0138] The following formulas are provided:

b ₀ =a ₀$b_{1} = {a_{0} + {\frac{\left( {a_{1} - a_{0}} \right){xe}_{1}}{e_{0}{xe}_{1}}e_{0}}}$

 b ₂ =a ₁ $\begin{matrix}{w = \sqrt{\frac{{area}\left( {b_{0},b_{1},b_{2}} \right)}{k_{0}{{b_{1} - b_{0}}}^{3}}}} \\{k_{1} = \frac{{area}\left( {b_{0},b_{1},b_{2}} \right)}{w^{2}{{b_{2} - b_{1}}}^{3}}}\end{matrix}$

[0139] FIGS. 17-19—Point-Curvature Curves

[0140] A sixth new embodiment of the Computer Curve Construction SystemII is for constructing point-curvature curves. In a first step shown inFIG. 17, a start point a₀ and a start tangent direction e₀ are set, andthe guide for the center of the start curvature circle (the osculatingcircle of the start curvature) is shown. The guide is the line througha₀ perpendicular to e₀. In a second step shown in FIG. 18, a center m₀of the start curvature circle r₀ is set. Since it is difficult to placem₀ exactly on the guide, the point that is set is projectedperpendicularly onto the guide. In a third step shown in FIG. 19, an endpoint a₁ is set. A curve c is automatically drawn through start and endpoints a₀ and a₁, with start tangent direction e₀ and center m₀ of thestart curvature circle r₀ according to any suitable set of mathematicalformulas. As shown in FIG. 19, an end tangent direction e₁ for end pointa₁ is automatically set, for example, in a symmetric way such that theangle between the ray extending from a₀ to a₁ and the end tangentdirection equals the angle between the start tangent direction and thatray.

[0141] For the example of conics, the center m₁ of the end curvaturecircle r₁ is automatically determined as shown for conic curvaturecurves. Since the end tangent direction is chosen in a symmetric way,the end curvature of the resulting conic equals the start curvature.

[0142] For the example of cubic Bezier curves, the center m₁ of the endcurvature circle r₁ is chosen in a particular way, for example in such away that the end curvature equals the start curvature.

[0143] This curve c is already drawn when the mouse button (inputdevice) is pressed for the end point, and when the mouse is dragged, theend point is dragged to a new location, and the curve c is changed, thefinal shape of which is drawn when the mouse is released.

[0144] Additional curve components of any type may be constructed toconnect with G², G¹, or G⁰ continuity.

[0145] The point-curvature curves are easy to construct, because the endtangent and end curvature are automatically determined. So for alladditional point-curvature curves that are connected with G² continuity,no curvature has to be drawn.

[0146] An exemplar set of formulas for determining the point-curvaturecurve for conics is as follows:

[0147] The following assumption is made:

[0148] Assume that sign(e₀×(a₁−a₀))=sign(e₁×(a₀−a₁))=sign(e₀×e₁) andthat the end point lies on the same side of e₀ as the center of thestart curvature circle.

[0149] After choosing the end tangent direction e₁ as described above,the formulas for the conic point-curvature curve are the same as theformulas for the conic curvature curve.

[0150] An exemplar set of formulas for determining the point-curvaturecurve for cubic Bezier curves is as follows:

[0151] The following assumption is made:

[0152] Assume that sign(e₀×(a₁−a₀))=sign(e₁×(a₀−a₁)) and that the endpoint lies on the same side of e₀ as the center of the start curvaturecircle.

[0153] After choosing the end tangent direction e₁ and the center m₁ ofthe end curvature circle as described above, the formulas for the Bezierpoint-curvature curve are the same as the formulas for the Beziercurvature curve.

[0154] Modifying Types of Curve Components

[0155] Besides modifying different types as described in the Ananya(supra) it is also possible to change between cubic Bezier curves andconics.

[0156] Change From a Cubic Bezier Curve to Conics:

[0157] If the angle between the start and end tangents is smaller than180 degrees, the resulting conic is the conic peak-point curve with thesame start and end points and the same start and end tangent directionsand the peak point on the center line at the same distance from thechord as the peak point of the cubic Bezier curve. If the angle betweenthe start and end tangent is larger than or equal to 180 degrees, thecubic Bezier curve is first changed into two cubic Bezier curves whichconnect at the peak point of the original cubic Bezier curve. Then eachBezier curve is changed into a conic after finding its peak point, whichis the point where the tangent is parallel to the chord, that can befound by using the section “Computing Points and Tangent Directions of aCubic Bezier Curve” described in Ananya (supra).

[0158] Change From a Conic to Cubic Bezier Curves:

[0159] If the angle between the start and end tangents is smaller than90 degrees, the resulting cubic Bezier curve is the Bezier peak-pointcurve with the same start and end points and the same start and endtangent directions and the same peak point. If the angle between thestart and end tangents is larger than or equal to 90 degrees (it isstill smaller than 180 degrees because of the assumptions for conics),the conic is first changed into two conics which connect at the peakpoint of the original conic. Then each conic is changed into a cubicBezier curve after finding its peak point, which is the point where thetangent is parallel to the chord, that can be found by using the section“Computing Points and Tangent Directions of a Conic” described below.

[0160] Computing Points and Tangent Directions of a Conic

[0161] Let b₀, b₁, and b₂ be the control points and w the weight of aconic. For drawing a conic or for selecting a point on a conic thefollowing algorithm is used, which is different from the deCasteljaualgorithm. This algorithm is faster than making computations using theequation of the conic. It computes a number N of points and tangentdirections, the number N being a power of 2 (such as N=1024). Fordrawing the conic, the polygonal line connecting these points is drawn.The points are not computed in the order they are drawn, but each pointhas an index and the points are drawn in the order of the indices. Thepoints p[n], n=0, 1, 2, . . . , N, start at the start point p[0]=b₀ andend at the end point p[N]=b₂. The tangent directions t[n], n=0, 1, 2, .. ., N, start at the start tangent direction t[0]=b₁−b₀, and end at theend tangent direction t[N]=b₂−b₁. The points p[n] and tangent directionst[n], n=1, 2, 3, . . . , N−1 are computed by a recursive functiondepending on an index n, a step s, control points c₀, c₁, and C₂, and aweight v (for a conic which is a portion of the original conic). Thisrecursive function also depends on the arrays p[ ] and t[ ], where itwrites the results. The first time this function is called for the indexN/2, the step N/2, the control points c₀=b₀, c₁=b₁, and C₂=b₂, and theweight v=w, and it computes the point p[N/2] and the tangent directiont[N/2]. When the function is called for the index n, the step s, thecontrol points c₀, c₁, and C₂, and the weight u, it computes:

[0162] the center point q=0.5(c₀+C₂),

[0163] the factor ${\lambda = \frac{v}{v + 1}},$

[0164] the peak point p[n]=q+λ(c₁−q),

[0165] and the tangent direction t[n]=c2−c₀.

[0166] After p[n] and t[n] are computed, if s is still larger than 1,the recursive function gets called twice for the index n−s/2, the steps/2,

[0167] the control points c₀, c₀+λ(c₁−c₀), and p[n],

[0168] and the weight u={square root}{square root over (0.5(v+1))}(forthe conic between c₀ and p[n]),

[0169] and for the index n+s/2, the step s/2,

[0170] the control points p[n], C₂+λ(C₁−C₂), and C₂,

[0171] and the weight u={square root}{square root over (0.5(v+1))}. (forthe conic between p[n] and C₂),

[0172] The point p[n] and tangent direction t[n] are the point andtangent direction at the parameter t=n/N, and they are computed fasterthan using the equation of the original conic.

[0173] Conclusion

[0174] Although the above description is specific, it should not beconsidered as a limitation on the scope of the invention of the materialdescribe herein, but only as an additional examples of the preferredembodiments. Many substitutes and variations are possible within theteachings of the invention, even for the particular example of conics.The mathematical formulas are only examples how the curves may bedetermined; any other suitable formulas may be used, even for theparticular example of conics.

[0175] For the described point-curvature curves any types curves can beused and a specific description is made for the example of cubic Beziercurves conics. Also, for the embodiments of point-tangent and pointcurves, in addition to the example of conics, new examples of cubicBezier curves are described.

[0176] It is also shown how conics can be converted into cubic Beziercurves that are very close, and how cubic Bezier curves can be convertedinto conics that a fairly close, but are chosen in such a way thatallows for shape improvement. The algorithms for these conversions usethe peak-point curve concept.

I claim:
 1. A method for constructing a conic peak-point curve with acomputer comprising the steps of: (vi) selecting a start point, a₀;(vii) selecting an end point, a₁; (viii) selecting a start tangentdirection, e₀; (ix) selecting an end tangent direction, e₁; and (x)selecting a distance of a peak point, p from the chord between the startand end points where the peak point is a point on the curve that isfarthest away from the chord lying on a centerline segment connectingthe center of the chord with a intersection point t of rays extending inthe start and end tangent directions e₀, e₁ respectively from the startand end points a₀, a₁.
 2. A method for constructing a conic point-pointcurve with a computer comprising the steps of: (v) selecting a startpoint, a₀; (vi) selecting a start tangent direction, e₀; and (vii)selecting a peak point, p, whereupon the computer system displays aguide area for locating possible end points loci defined by two raysintersecting at a point s that lies on one of the two rays that extendsfrom the start point a₀ in the direction of the peak point p at twice(2×) the distance of the peak point p from the start point a₀, theremaining ray extending from s in a direction opposite to the starttangent direction e₀, (viii) selecting any point in the guide area as anend point a₁ of the curve, whereupon the computer, using any suitablemathematical formulae then constructs a curve passing through the startpoint, a₀, peak point, p, and the end point a₁, where the end tangentdirection e₁ is derived from a point of intersection of start and endtangents that coincides with the intersection of start tangent and acenterline extending through the center of a chord between the start andend points a₀, a₁, and through the peak point, p.
 3. A method forconstructing of a conic point-tangent curve with a computer comprisingthe steps of: (vi) selecting a start point, a₀; (vii) selecting a starttangent direction, e₀; (viii) selecting an end point, a₁; (ix) selectingan end tangent direction, e₁; and (x) selecting a fixed weight, w forthe curve, whereupon the computer, using any suitable mathematicalformulae, then constructs a curve passing through the start point, a₀,and the end point a₁, where the input weight w is a parameter defined asa proportion between a distance of a peak point p from a center point qof a chord between the start and end points a₀, a₁ and a distance of thepeak point p from an intersection point t of the start and end tangents.4. The method of claim 3 wherein the selected fixed weight is a fixedcos-weight v, an arbitrarily defined positive parameter that utilizes amultiplication factor such as a trigonometric cosine relationship forcomputing a weight that limits a permitted range of peak points of thepossible curves.
 5. A method for constructing a conic point curve with acomputer comprising the steps of: (v) selecting a start point, a₀; (vi)selecting a start tangent direction, e₀; and (vii) selecting an endpoint, a₁, and (viii) selecting a fixed weight, w, for the curve,whereupon the computer, using any suitable mathematical formulae, thenconstructs a curve passing through the start point, a₀, and the endpoint a₁, where an end tangent directione ₁ is automatically set byselected pre-defined program parameters.
 6. The method of claim 5wherein the selected fixed weight is a fixed cos-weight v, anarbitrarily defined positive parameter that utilizes a multiplicationfactor such as a trigonometric cosine relationship for computing aweight that limits a permitted range of peak points of the possiblecurves.
 7. A method for constructing a conic curvature curve with acomputer comprising the steps of: (vii) selecting a start point, a₀;(viii) selecting a start tangent direction, e₀; whereupon the computerdisplays a guideline perpendicular to the start tangent direction, e₀for the center m₀ of the start curvature circle, r₀; (ix) selecting acenter m₀ of the start curvature circle r₀ on the displayed guideline;and (x) selecting an end point a₁; and (xi) selecting an end tangentdirection, e₁. the computer, using any suitable mathematical formulae,draws a conic curve through the start and end points a₀, a₁, withrespective start and end tangent directions of e₀, e₁ with the center m₀of the start curvature circle r₀ and the center m₁ for the end curvaturecircle r₁ which are automatically determined.
 8. A method forconstructing a class of point curvature curves including cubic Beziercurves and conics with a computer comprising the steps of: (iv)selecting a start point, a₀; (v) selecting a start tangent direction,e₀; whereupon the computer displays a guideline perpendicular to thestart tangent direction, e₀ for the center m₀ of the start curvaturecircle r₀; (vi) selecting a center m₀ of the start curvature circle r₀on the displayed guideline; and (xii) selecting a end point a₁, thecomputer, using any suitable mathematical formulae, then constructs acurve passing through the start and end points a₀, a₁, with starttangent direction e₀ and center m₀ of the start curvature circle r₀where an end tangent direction e₁ is automatically set by selectedpre-defined program parameters.
 9. The method of claim 8 wherein theconstructed curve is a conic and a center m₁ of an end curvature circler₁ are automatically determined.
 10. The method of claim 8 wherein theconstructed curve is a cubic Bezier curve, and a center m₁ of the endcurvature circle r₁ is set by a selected defined program parameter. 11.A method for constructing of a Bezier point-tangent curve with acomputer comprising the steps of: (i) selecting a start point, a₀; (ii)selecting a start tangent direction, e₀; (iii) selecting an end point,a₁; (iv) selecting an end tangent direction, e₁; and (v) selecting afixed weight, w for the curve, whereupon the computer, using anysuitable mathematical formulae, then constructs a curve passing throughthe start point, a₀, and the end point a₁, and a peak point p calculatedto lie on a centerline segment connecting a center point q of the chordbetween the start and end points a₀, a₁ with an intersection point t ofthe start and end tangents, where the input weight w is a parameterdefined as a proportion between a distance of a peak point p from thecenter point q of a chord and a distance of the peak point p from theintersection point t of the start and end tangents.
 12. The method ofclaim 11 wherein the selected fixed weight is a fixed cos-weight v, anarbitrarily defined positive parameter that utilizes a multiplicationfactor such as a trigonometric cosine relationship for computing aweight that limits a permitted range of peak points of the possiblecurves.
 13. A method for constructing a Bezier point curve with acomputer comprising the steps of: (ix) selecting a start point, a₀; (x)selecting a start tangent direction, e₀; and (xi) selecting an endpoint, a₁, and (xii) selecting a fixed weight, w, for the curve,whereupon the computer, using any suitable mathematical formulae, thenconstructs a curve passing through the start point, a₀, and the endpoint a₁, where an end tangent direction e₁ is automatically set byselected pre-defined program parameters.
 14. The method of claim 13wherein the selected fixed weight is a fixed cos-weight v, anarbitrarily defined positive parameter that utilizes a multiplicationfactor such as a trigonometric cosine relationship for computing aweight that limits a permitted range of peak points of the possiblecurves.